In traditional interfaces between computer system I/O devices and their supporting I/O controllers, the I/O controller asserts a strobe signal to the I/O device to signal the I/O device to either receive or output data. In addition to its handshaking function, the strobe signal is also used internally by the I/O controller to strobe data that is pending from the I/O device into a storage element within the controller. Conversely, when data is being transferred from the I/O controller to the I/O device, the strobe signal is used to cause logic within the controller to output a new data value to the I/O device.
One disadvantage of the above-described traditional interface between computer system I/O devices and their supporting I/O controllers is that the handshaking is one sided. That is, there is no signal from the I/O device to the I/O controller to indicate when new data is ready. Consequently, when data is being transferred from the I/O device to the I/O controller, the I/O controller must assume that a new data value has been asserted by the I/O device after each strobing edge of the strobe signal and that the new data value becomes valid at the I/O controller input within a specified time after the strobing edge. However, because I/O devices exhibit different strobe signal response times and because the impedance and length of the transmission path (often a cable) between the I/O device and the I/O controller is variable, data from the I/O device is not always valid at the I/O controller input in time to be captured. In those instances, invalid data is captured in the I/O controller.
Another disadvantage of traditional interfaces between computer system I/O devices and their supporting I/O controllers is that the interfaces are typically limited to preset data transfer rates for different I/O devices. For example, some I/O devices may be capable of outputting data at a significantly faster rate than the strobe signal rate. However, because in the traditional interface the I/O device does not signal the I/O controller when valid data is present, the I/O device is forced to await the strobe signal and output data at the slower strobe signal rate.
A related disadvantage of the traditional I/O controller-to-I/O device interface is that it does not support time-varying data transfer rates. For example, some devices have a "burst" data transfer ability, that is, the ability to occasionally output or receive data at a rate faster than the average transfer rate for the device. Using a traditional I/O controller-to-I/O device interface, such I/O devices are forced to await the strobe signal and output data at the strobe signal rate even though they are capable of occasional burst data rates that exceed the strobe signal rate.